const arr = [
  { id: 1, name: "部门A", parentId: 0 },
  { id: 2, name: "部门B", parentId: 1 },
  { id: 3, name: "部门C", parentId: 1 },
  { id: 4, name: "部门D", parentId: 2 },
  { id: 5, name: "部门E", parentId: 2 },
  { id: 6, name: "部门F", parentId: 3 },
];

// 递归的方式
function arrayToTree(items, id = 0, link = "parentId") {
  // 1. 创建结果数组
  const result = [];
  // 2. 遍历所有项目
  for (const item of items) {
    // 3. 找到当前层级的项目
    if (item[link] === id) {
      // 4. 递归构建子树
      const children = arrayToTree(items, item.id, link);
      // 5. 创建节点对象
      const node = {
        ...item,
        children: children.length > 0 ? children : undefined,
      };

      // 6. 添加到结果
      result.push(node);
    }
  }

  return result;
}
const tree = arrayToTree(arr);
console.log("tree", tree);

// 
